home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / PROGRAMR / FLAT.ZIP / MEMMAN.H < prev    next >
C/C++ Source or Header  |  1993-06-29  |  3KB  |  89 lines

  1. /****************************************************************************
  2. ** Program:    Memory Manager
  3. ** File:       memman.h
  4. ** Model:      medium
  5. ** Windows:    3.0
  6. ** Version:    1.0
  7. ** Autor:      hb
  8. ** Stand:      5.6.92
  9. ****************************************************************************/
  10. /* ERROR-Codes */
  11. #define IDE_OK                0
  12. #define IDE_REALMODE         -1
  13. #define IDE_ONLYONEHEAP      -2
  14. #define IDE_NOMEMAVAIL       -3
  15. #define IDE_MEMERROR         -4
  16. #define IDE_NOHEAP           -5
  17. #define IDE_NULLPOINTER      -6
  18. #define IDE_NOMELT           -7
  19. #define IDE_NOTINHEAP        -8
  20.  
  21. /* numeric defines */
  22. #define SEGMENT              65536L
  23. #define MAXLIST                1000
  24.  
  25. /* typedefs */
  26. typedef struct node
  27. {
  28.    long         lSize;
  29.    long         lOffset;
  30. } NODE, FAR *LPNODE;
  31.  
  32. /* Prototypen */
  33. int               CreateHeap       (long, int);
  34. int               DestroyHeap      (void);
  35. void far         *AllocMemMan      (long);
  36. void far         *ReAllocMem       (void far *, long);
  37. int               FreeMem          (void far *);
  38. long              GetOffset        (void far *);
  39. void far         *GetPointer       (long);
  40. int               GetHeapIndex     (long);
  41. int               GetFreeIndex     (long);
  42. int               GetFreeHeapIndex (void);
  43. int               GetFreeFreeIndex (void);
  44. int               MeltFreeList     (void);
  45. void              SortFreeNodes    (LPNODE, int, int);
  46. void              ShowMemoryError  (int error);
  47.  
  48. /* helper routine in memutil.c */
  49. void              SortFree            (void);
  50. void              WalkHeap            (HWND, int, int, int);
  51. void              lmemfill            (LPSTR, char, long);
  52. void              Shake               (HWND, int, long);
  53. void              DrawHeap            (HWND, HDC);
  54. void              ShowHeapList        (HWND, int);
  55. void              ViewHeap            (HWND, int, long);
  56.  
  57.  
  58. /* global variables */
  59. #if defined( MAINMEM )
  60.  
  61. HANDLE        hHeap,             /* Handle of glbal heap                           */
  62.               hHeapNodes,        /* Handle of heapnodes                            */
  63.               hFreeNodes;        /* Handle of freenodes                            */
  64. char huge     *hpBase;           /* Basepointer of heap                            */
  65. int           nFreeUsed;         /* used nodes in freenodes                        */
  66. int           nHeapUsed;         /* used node in heapnodes                         */
  67. int           nNodes;            /* max nuber of handles in free- and heapnodes    */
  68. long          lSegBorder;        /* Offset for segment boundaries                  */
  69. long          lHeapSize;         /* size of heap                                   */
  70. LPNODE        FreeNodes;         /* list of free nodes                             */
  71. LPNODE        HeapNodes;         /* list of heap nodes                             */
  72.  
  73. #else
  74.  
  75. extern HANDLE        hHeap,     
  76.                      hHeapNodes,
  77.                      hFreeNodes;
  78. extern char huge     *hpBase;   
  79. extern int           nFreeUsed; 
  80. extern int           nHeapUsed; 
  81. extern int           nNodes;    
  82. extern long          lSegBorder;
  83. extern long          lHeapSize; 
  84. extern LPNODE        FreeNodes; 
  85. extern LPNODE        HeapNodes; 
  86.  
  87. #endif
  88.  
  89.